int demo_params(int a, int b, int c)
{
    int d = a + b + c;
    b++;
    int e;
    return d;
}

int demo_pointer(int *a, int *b)
{
    // *b += 1;
    int c = *a + *b;
    *b += 5;
}

typedef struct
{
    int a;
    int b;
} S;

int demo_struct_and_arr_ptr(S *s, int arr[])
{
    int c = s->a + 2;
    S s1 = *s;
    S *s2 = s;
    int d = s1.b * 2;
    int e = arr[0] - arr[1];
    s1.a = 10;
    s2->b = 5;
}

int demo_callee(int a, int b)
{
    int c = a + b;
    return c;
}

int demo_caller()
{
    int a = 10;
    int b = 20;
    int c = demo_callee(a, b);
    int (*p)(int x, int y) = 0;
    p = demo_callee;
    c += p(a, b);
    return c;
}

void *sys_alloc(int size);
int sys_dealloc(int ptr);

int demo(a)
{
    int *ptr = sys_alloc(sizeof(int));
    // ...
    if (a > 0)
    {
        //...;
        sys_dealloc(ptr);
    }
    else
    {
        // ...;
        // 缺少sys_dealloc(ptr);
    }
}